package com.sz.szaiagent.rag;

import jakarta.annotation.Resource;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.document.Document;
import org.springframework.ai.transformer.KeywordMetadataEnricher;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 基于 AI 的文档元信息增强器（为文档补充元信息）
 * 该类利用AI模型为文档补充关键词等元信息，提升文档的可检索性和语义理解。
 */
@Component
public class MyKeywordEnricher {

    @Resource
    private ChatModel dashscopeChatModel;

    /**
     * 使用AI模型为文档列表补充关键词元信息
     * @param documents 待增强的文档列表
     * @return 补充元信息后的文档列表
     */
    public List<Document> enrichDocuments(List<Document> documents) {
        KeywordMetadataEnricher keywordMetadataEnricher =
                new KeywordMetadataEnricher(dashscopeChatModel, 5); // 创建KeywordMetadataEnricher实例
        return  keywordMetadataEnricher.apply(documents); // 应用KeywordMetadataEnricher进行文档元信息增强
    }
}
